Servlet的路径配置 您所在的位置:网站首页 idea servlet怎么指定路径 Servlet的路径配置

Servlet的路径配置

2024-05-11 06:31| 来源: 网络整理| 查看: 265

1-Servlet的路径配置

课程介绍:

 

通过对 Servlet 的调用流程学习,我们知道 web.xml 文件的配置是为了保护servlet。其实服务器应该调用哪个 servlet 进行请求的处理, 在浏览器的请求地址中写的很清楚。

一、注解配置:

1、精确匹配(路径要一样),一般作用于站点独特的几个路径,首页、登录、注册等等

@WebServlet("/hello")

 

2、路径匹配,一般用于产品页,新闻页面,百科页面一般用于大量相类似的页面

@WebServlet("/product/*")

 

3、扩展名匹配

 

@WebServlet("*.json")

 

 

匹配多个路径:

 

@WebServlet(urlPatterns= {"/morepath","*.do","/more/*"})

 

 

 

 

 

二、Servlet的web.xml 配置:

Web.xml 配置的作用:保护Servlet。

配置方式一:精确匹配

 

Web.xml 配置的作用:保护Servlet。

配置方式一:精确匹配

my3 com.bjsxt.servlet.MyServlet3 my3 /my3

配置方式二:路径匹配

my3 com.bjsxt.servlet.MyServlet3 my3 /my3

配置方式三:扩展名匹配

my3 com.bjsxt.servlet.MyServlet3 my3 *.do

 

加载时机:

服务器启动的时候会将 webapps 中部署好的项目统一进行加载,并完成对每个项目的 web.xml 文件的加载。

 

注意:

一个 Servlet 可有拥有多个 url-pattern 配置,但是一个url-pattern 配置只能对应一个Servlet

 

路径和扩展名匹配无法同时设置,比如下面的三个都是非法的,如果设置,启动tomcat服务器会报错。

 

/kata/*.jsp

 

/*.jsp

 

he*.jsp

 

另外注意:/aa/*/bb

这个是精确匹配,url必须是 /aa/*/bb,这里的*不是通配的含义

 

优先顺序

 

当一个url与多个servlet的匹配规则可以匹配时,则按照 “ 精确路径 > 最长路径>扩展名”这样的优先级匹配到对应的servlet。举例如下:

例1: servletA 的url-pattern为 /test, servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test ,这个时候容器就会先进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,不会去管servletB。 例2: servletA的url-pattern为/test/*, servletB的url-pattern为/test/a/*,此时访问http://localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。 例3: 比如 servletA的url-pattern:*.action , servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test.action,这个时候容器就会优先进行路径匹配,而不是去匹配扩展名,这样就去调用servletB。

 

页面乱码:解决方法

request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UFT-8");


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有